Present day data communication networks, both wireless and wire-line, have a requirement to transfer data between communication units. Data, in this context, includes many forms of communication, such as speech, multimedia, signalling, etc. Typically, such data communication needs to be effectively and efficiently transported, in order to optimise use of limited communication resources.
Due to the recent growth in communications, particularly in Internet and wireless communications, there exists a need to provide improved data transfer techniques, where a particular quality of service of the transmitted data is often required or desired by the end user.
The European Telecommunication Standards Institute (ETSI) has defined a number of communication standards with the aim that a number of manufacturers are able to provide equipment that supports the same technology and are able to inter-operate with other equipment compliant with that standard. One such data communication standard developed by ETSI is the Terrestrial Digital Video Broadcasting (DVB-T) standard (ETSI EN 300 744), which has been developed for digital television sets and set-top boxes.
A recent variation of the DVB-T standard that has been adopted to incorporate enhanced features to allow improved reception of digital video broadcasting services for mobile devices is the digital video broadcasting-handset (DVB-H) standard. A DVB-H unit is battery powered, and the nature of the broadcast transmission offers a possibility to the DVB-H unit to repeatedly power off components/circuits of the DVB-H unit's receiver chain to increase battery life. It is anticipated that DVB-H units may receive transmissions at a variety of locations, such as: indoor, outdoor, as a pedestrian, within a moving vehicle, etc.
One feature that has been incorporated within the DVB-H standard that facilitates this aim of mobile reception is the use of multi protocol encapsulated-forward error correction (MPE-FEC) of received data. MPE-FEC facilitates recovery of data by a receiver in situations of high data-packet loss, which can occur when a receiver is in a changing environment, for example when a receiver is moving. MPE-FEC regroups data into blocks (MPE-FEC frames) and performs forward error correction on these data blocks. For an efficient error correction mechanism, a common approach is to have MPE-FEC frames larger than 512 Kbits. Thus, a receiver operating within a DVB-H compatible system receives an MPE-FEC frame with up to 2 Mbit of data over a single channel in a relatively short time period, for example 200 millisecond.
Historically, DVB-T originally was meant for MPEG2 video transmitted in MPEG2 Transport Steam (TS). MPEG2 TS is protected with Reed Solomon (RS) Forward Error Correction (FEC) codes. Then application of Multi-protocol Encapsulation (MPE) decoding enables transport of Internet Protocol (IP) data packets. Thus, to cope with mobile propagation degradation, DVB-H introduced another layer of RS FEC called MPE-FEC. Here, only MPE blocks with incorrect cyclic redundancy check (CRC) are further processed by the MPE FEC decoder. If the CRC fails, the whole block is discarded. Zeros are then inserted at the proper byte positions in the RS code words, instead of the block data, and are marked as “unreliable”. If there are more than 64-unreliable byte positions in a RS code word, the RS decoder cannot correct anything, and therefore just outputs the bytes without error correction.
Referring now to FIG. 1, a known MPE-FEC decoder 100, as proposed in the EN 301 192 V1.4.1 standard, is illustrated. The MPE-FEC decoder comprises a demodulator 105 for demodulating a received signal, followed by an inner decoder 110 and outer decoder 115 for decoding the demodulated received signal. The inner decoder is a convolutional decoder. The reception is typically implemented using a soft-decision Viterbi decoder. This reduces the effect of thermal noise and interference on the quality of the received signal, as Viterbi errors are generally bursty in nature. A Reed-Solomon decoder is used as the outer decoder, which feeds the decoded, demodulated received signal into an MPEG2 Transport Stream (TS) de-multiplexer to de-interleave received data packets. The MPE data packets are then divided into IP datagrams 125, 140 and RS column data 130, 145. A typical table of MPE-FEC data is illustrated in FIG. 2. These MPE data packets are then input into an MPE-FEC decoder 150 to provide output corrected IP datagrams 155.
Referring now to FIG. 2, a known MPE-FEC table 200 contains redundant information that can be used to remove errors not corrected by the inner and outer decoders of FIG. 1. The MPE-FEC table 200 comprises an Application data table 210 comprising IP datagrams 210, some padding 215 and Application padding columns 220. In addition, an RS data table 235 comprises RS data 225 and punctured RS data columns 230. The 64 punctured RS data columns carry redundancy information of the Application data table 210.
The MPE-FEC decoder 150 uses the MPE data packets to generate syndromes for the received data, which indicate the presence of errors within the IP datagrams 125, 140, and are used to estimate the location of the errors within the MPE-FEC frame. Once errors have been located, forward error correction can then be performed to correct the errors.
Given the relatively high complexity of FEC decoding, it is known to implement MPE-FEC decoding within a discrete hardware module, such as a discrete integrated circuit (IC) package, which may be operatively coupled to, for example, a host application process. Such MPE-FEC decoding modules receive MPE-FEC frames from the host application process, and store them in memory in order to perform forward error correction thereon.
As previously mentioned, it is common to have MPE-FEC frames larger than 512 Kbits. Thus, a receiver operating within a DVB-H compatible system receives an MPE-FEC frame with up to 2 Mbit of data. Consequently, in order for an MPE-FEC decoder module to store an entire MPE-FEC frame in memory, it is necessary for the MPE-FEC decoder module to comprise at least 2 Mbit of memory dedicated for that purpose.
As will be appreciated by a skilled artisan, for mobile devices, battery life is not the only consideration. Size and cost are also important key drivers in the design and manufacturing of such devices. The need to provide 2 Mbit of memory within a discrete hardware module adds both size and cost to an IC. Consequently, such a need is problematic.
Thus, a need exists for an improved integrated circuit comprising a decoder, and a method of decoding.